package com.summer.data.jql.concept;

import com.summer.data.Jsql;
import com.summer.data.dialect.Dialect;
import com.summer.data.exception.BaseException;
import com.summer.data.jql.Context;

/**
 * @author 345480567@qq.com
 */

public class Value<T> implements Field<T> {

    protected T val;

    public static Value<Integer> use(Integer val) {
        return new Value(val);
    }

    public static Value<String> use(String val) {
        return new Value(val);
    }

    public Value(T val) {
        this.val = val;
    }

    @Override
    public Jsql toGroupSql(Context ctx, Dialect dialect) {
        throw new BaseException("Const<T> 不支持 Group 操作。");
    }

    @Override
    public Jsql toFieldSql(Context ctx, Dialect dialect) {
        return new Jsql("?", val);
    }
}
